Control device, robot, and robot system

ABSTRACT

A control device includes a robot control section that controls a robot including a hand and a force detecting section; and a operation-mode switching section that switches, when storing a position and a posture of the robot, a first mode for moving the robot by the robot control section until an external force applied to the hand satisfies a predetermined condition and a second mode for moving the robot by the robot control section on the basis of an external force applied to a first part included in the robot.

BACKGROUND

1. Technical Field

The present invention relates to a control device, a robot, and a robotsystem.

2. Related Art

Researches and developments of a technique for teaching a robot about amotion on the basis of a force and a moment detected by a force sensorincluded in the robot have been performed.

Concerning the technique, there is known a direct teaching device thatcauses a teaching operator to apply a force to a fingertip effectorprovided at a tip portion of an arm of a robot, detects the appliedforce with a force sensor included in a wrist section, guides thefingertip effector to a target position according to force control basedon a force signal output by the force sensor, and stores, as teachingdata, the position and the posture of the fingertip effector after beingguided (see JP-A-03-123908 (Patent Literature 1)).

However, in such a direct teaching device, it is sometimes difficult toaccurately change the position and the posture of the fingertip effectorto a desired position and a desired posture unless parameters input inadvance, that is, force control parameters used for calculating amovement amount of the fingertip effector by the force control areaccurately set. In the direct teaching device, even if the force controlparameters can be accurately set, it is sometimes difficult for theteaching operator to accurately apply a desired force to the fingertipeffector in a desired direction. It is sometimes difficult to accuratelychange the position and the posture of the fingertip effector to thedesired position and the desired posture. As a result, the directteaching device sometimes cannot accurately teach the robot about thedesired position and the desired posture.

SUMMARY

An aspect of the invention is directed to a control device includes arobot control section that controls a robot including a hand and a forcedetecting section; and a operation-mode switching section that switches,when storing a position and a posture of the robot, a first mode formoving the robot by the robot control section until an external forceapplied to the hand satisfies a predetermined condition and a secondmode for moving the robot by the robot control section on the basis ofan external force applied to a first part included in the robot.

With this configuration, the control device switches, when storing theposition and the posture of the robot, the first mode for moving therobot until the external force applied to the hand satisfies thepredetermined condition and the second mode for moving the robot on thebasis of the external force applied to the first part included in therobot. Consequently, the control device can highly accurately change theposition and the posture of the robot to a desired position and adesired posture according to the first mode or the second mode.

In another aspect of the invention, the control device furthercomprising a force-detection-information acquiring section that acquiresforce detection information from the force detecting section. In thefirst mode, the robot control section brings the hand close to a targetobject according to control based on the force detection informationuntil the predetermined condition is satisfied. the control device maybe configured such that, in the first mode, the control device bringsthe hand close to a target object according to control based on anoutput of the force detecting section until the predetermined conditionis satisfied.

With this configuration, in the first mode, the control device bringsthe hand close to the target object through the control based on theoutput of the force detecting section. Consequently, in the first mode,the control device can highly accurately change the position and theposture of the robot to a desired posit ion and a desired postureassociated with the target object without causing a user to apply anexternal force to the hand.

In another aspect of the invention, the control device may be configuredsuch that the predetermined condition is that at least an external forcetoward a first direction in the external force applied to the handincreases to be larger than zero and at least an external force toward asecond direction different from the first direction in the externalforce applied to the hand decreases to zero.

With this configuration, in the first mode, the control device moves therobot until at least the external force toward the first direction inthe external force applied to the hand increase to be larger than zeroand at least the external force toward the second direction in theexternal force applied to the hand decreases to zero. Consequently, inthe first mode, the control device can move the position of the robottoward a direction opposite to the first direction while keeping theposture of the robot.

In another aspect of the invention, the control device may be configuredsuch that the first direction is a translational direction and thesecond direction may be a rotational direction.

With this configuration, in the first mode, the control device moves therobot until at least a force toward the first direction, which is thetranslational direction, in a force applied to the hand increases to belarger than zero and a moment toward the second direction, which is therotational direction, decreases to zero. Consequently, in the firstmode, the control device can move the position of the robot toward thedirection opposite to the first direction, which is the translationaldirection, while keeping the posture of the robot.

In another aspect of the invention, the control device may be configuredsuch that, in the first mode, the control device stores, when thepredetermined condition is satisfied, the position and the posture at apresent time.

With this configuration, in the first mode, when the predeterminedcondition is satisfied, the control device stores the position and theposture of the robot at the present time. Consequently, in the firstmode, the control device can operate the robot on the basis of theposition and the posture of the robot stored when the predeterminedcondition is satisfied.

In another aspect of the invention, the control device may be configuredsuch that, in the second mode, the robot control section included thecontrol device moves a second part included in the robot in apredetermined direction by a predetermined amount on the basis of theexternal force applied to the first part.

With this configuration, the control device moves the second partincluded in the robot in the predetermined direction by thepredetermined amount on the basis of the external force applied to thefirst part included in the robot. Consequently, in the second mode, thecontrol device can highly accurately change the position and the postureof the robot to the desired position and the desired posture on thebasis of the external force applied to the first part by the user.

In another aspect of the invention, the control device may be configuredsuch that the control device stores the position and the posture at apresent time after moving the second part in the predetermined directionby the predetermined amount.

With this configuration, the control device stores the position and theposture of the robot at the present time after moving the second part inthe predetermined direction by the predetermined amount. Consequently,in the second mode, the control device can control the robot on thebasis of the position and the posture of the robot stored after thesecond part is moved in the predetermined direction by the predeterminedamount.

In another aspect of the invention, the control device may be configuredsuch that one or both of a translational direction and a rotationaldirection are included in the predetermined direction.

With this configuration, the control device stores the position and theposture of the hand at the present time after moving the second part inone or both of the translational direction and the rotational directionby a predetermined amount. Consequently, in the second mode, the controldevice can control the robot on the basis of the position and theposture stored after the second part is moved in one or both of thetranslational direction and the rotational direction by thepredetermined amount.

In another aspect of the invention, the control device may be configuredsuch that the predetermined direction is a direction corresponding to aportion of the first part, and the robot control section included thecontrol device moves, according to the external force applied to thefirst part, the second part in a direction corresponding to a portion towhich the external force is applied in the portion of the first part bythe predetermined amount.

With this configuration, the control device moves, according to theexternal force applied to the first part included in the robot, thesecond part in the direction corresponding to the portion to which theexternal force is applied in the portion of the first part by thepredetermined amount. Consequently, the control device can cause theuser to easily change the direction in which the second part is moved.

Another aspect of the invention is directed to a robot controlled by thecontrol device.

With this configuration, the robot switches, when storing the positionand the posture of the robot, the first mode for moving the robot untilthe external force applied to the hand satisfies the predeterminedcondition and the second mode for moving the robot on the basis of theexternal force applied to the first part included in the robot.Consequently, the robot can highly accurately change the position andthe posture of the robot to a desired position and a desired postureaccording to the first mode or the second mode.

Another aspect of the invention is directed to a robot system including:the control device; and a robot controlled by the control device.

With this configuration, the robot system switches, when storing theposition and the posture of the robot, the first mode for moving therobot until the external force applied to the hand satisfies thepredetermined condition and the second mode for moving the robot on thebasis of the external force applied to the first part included in therobot. Consequently, the robot system can highly accurately change theposition and the posture of the robot to a desired position and adesired posture according to the first mode or the second mode.

Consequently, the control device, the robot, and the robot systemswitch, when storing the position and the posture of the robot, thefirst mode for moving the robot until the external force applied to thehand satisfies the predetermined condition and the second mode formoving the robot on the basis of the external force applied to the firstpart included in the robot. Consequently, the control device, the robot,and the robot system can highly accurately change the position and theposture of the robot to a desired position and a desired postureaccording to the first mode or the second mode.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described with reference to the accompanyingdrawings, wherein like numbers reference like elements.

FIG. 1 is a diagram showing an example of the configuration of a robotsystem according to an embodiment.

FIG. 2 is a diagram showing an example of a hardware configuration of arobot control device and a teaching device.

FIG. 3 is a diagram showing an example of a functional configuration ofthe robot control device and the teaching device.

FIG. 4 is a flowchart for explaining an example of a flow of processingin which the teaching device outputs various instructions to the robotcontrol device.

FIG. 5 is a flowchart for explaining an example of a flow of processingin which the robot control device switches an operation mode on thebasis of an operation mode switching instruction.

FIG. 6 is a flowchart for explaining an example of a flow of processingin which the robot control device outputs, on the basis of a positionand posture information output instruction, information indicating theposition and the posture of a control point at the present time to theteaching device.

FIG. 7 is a flowchart for explaining an example of a flow of processingin which the robot control device operates the robot when the operationmode is a second mode.

FIG. 8 is a diagram showing a specific example 1 of a movement executingdirection in a second predetermined condition and a predetermineddirection, the specific example 1 being an example in which both of themovement executing direction and the predetermined direction aretranslational directions and the movement executing direction and thepredetermined direction are directions different from each other.

FIG. 9 is a diagram showing a specific example 2 of the movementexecuting direction in the second predetermined condition and thepredetermined direction, the specific example 2 being an example inwhich both of the movement executing direction and the predetermineddirection are translational directions and the movement executingdirection and the predetermined direction are the same direction.

FIG. 10 is a diagram showing a specific example 3 of the movementexecuting direction in the second predetermined condition and thepredetermined direction, the specific example 3 being an example inwhich the movement executing direction is a translational direction andthe predetermined direction is a rotational direction.

FIG. 11 is a diagram showing a specific example 4 of the movementexecuting direction in the second predetermined condition and thepredetermined direction, the specific example 4 being an example inwhich both of the movement executing direction and the predetermineddirection are rotational directions and the movement executing directionand the predetermined direction are the same direction.

FIG. 12 is a diagram showing a specific example 5 of the movementexecuting direction in the second predetermined condition and thepredetermined direction, the specific example 5 being an example inwhich both of the movement executing direction and the predetermineddirection are rotational directions and the movement executing directionand the predetermined direction are directions different from eachother.

FIG. 13 is a diagram showing a specific example 6 of the movementexecuting direction in the second predetermined condition and thepredetermined direction, the specific example 6 being an example inwhich the movement executing direction is a rotational direction and thepredetermined direction is a translational direction.

FIG. 14 is a diagram showing a specific example 1 of a movementexecuting direction and a predetermined direction at the time when thepredetermined direction is a direction corresponding to a portion of ahand.

FIG. 15 is a diagram showing a specific example 2 of the movementexecuting direction and the predetermined direction at the time when thepredetermined direction is the direction corresponding to the portion ofthe hand.

FIG. 16 is a flowchart for explaining an example of a flow of processingin which the robot control device operates the robot when the operationmode is a first mode.

FIG. 17 is a diagram showing an example of a positional relation betweenthe hand and a workbench at timing immediately before the position andthe posture of a control point start to change in step S510.

FIG. 18 is a diagram showing an example of a positional relation betweenthe hand and the workbench at timing immediately before the change ofthe position and the posture of the control point is stopped in stepS530.

DESCRIPTION OF EXEMPLARY EMBODIMENTS Embodiment

An embodiment of the invention is explained below with reference to thedrawings.

Configuration of a Robot System

First, the configuration of a robot system 1 is explained.

FIG. 1 is a diagram showing an example of the configuration of the robotsystem 1 according to this embodiment. The robot system 1 includes arobot 20 and a control device 25. The control device 25 is configured bya robot control device 30 and a teaching device 50 separate from therobot control device 30. Note that, instead of this configuration, thecontrol device 25 may be configured by integrating the robot controldevice 30 and the teaching device 50. In this case, the control device25 has functions of the robot control device 30 and the teaching device50 explained below.

The robot 20 is a single-arm robot including an arm A and a supportingstand B that supports the arm A. The single-arm robot is a robotincluding one arm like the arm A in this example. Note that the robot 20may be a plural-arm robot instead of the single-arm robot. Theplural-arm robot is a robot including two or more arms (e.g., two ormore arms A). Note that, among plural-arm robots, a robot including twoarms is referred to as double-arm robot as well. That is, the robot 20may be a double-arm robot including two arms or may be a plural-armrobot including three or more arms (e.g., three or more arms A). Therobot 20 may be another robot such as a SCARA robot or a Cartesiancoordinate robot. The Cartesian coordinate robot is, for example, agantry robot.

The arm A includes an end effector E, a manipulator M, and a forcedetecting section 21.

In this example, the end effector E is an end effector including fingersections capable of gripping an object. Note that the end effector E maybe an end effector capable of lifting an object with the suction of theair, a magnetic force, a jig, or the like instead of the end effectorincluding the finger sections or another end effector.

The end effector E is communicatively connected to the robot controldevice 30 by a cable. Consequently, the end effector E performs a motionbased on a control signal acquired from the robot control device 30.Note that wired communication via the cable is performs according to astandard such as the Ethernet (registered trademark) or the USB. The endeffector E may be connected to the robot control device by wirelesscommunication performed according to a communication standard such asthe Wi-Fi (registered trademark).

The manipulator M includes seven joints. The seven joints respectivelyinclude not-shown actuators. That is, the arm A including themanipulator M is an arm of a seven-axis vertical multi-joint type. Thearm A performs a motion of a seven-axis degree of freedom according toassociated operation by the supporting stand B, the end effector E, themanipulator M, and the actuators of the respective seven joints includedin the manipulator M. Note that the arm A may move at a degree offreedom of six or less axes or may move at a degree of freedom of eightor more axes.

When the arm A moves at the seven-axis degree of freedom, postures thatthe arm A can take increases compared with when the arm A moves at thedegree of freedom of six or less axes. Consequently, the arm A can movesmoothly and easily avoid interference with an object present around thearm A. When the arm A moves at the seven-axis degree of freedom,computational complexity of the control of the arm A is small and thecontrol of the arm A is easy compared with when the arm A moves at thedegree of freedom of eight or more exes.

The seven actuators (included in the joints) included in the manipulatorM are respectively communicably connected to the robot control device 30by cables. Consequently, the actuators operate the manipulator M on thebasis of a control signal acquired from the robot control device 30. Theactuators include encoders. The encoders output information indicatingrotation angles of the actuators including the encoders to the robotcontrol device 30. Note that the wired communication via the cable isperformed according to a standard such as the Ethernet (registeredtrademark) or the USB. A part or all of the seven actuators included inthe manipulator M may be connected to the robot control device 30 bywireless communication performed according to a communication standardsuch as the Wi-Fi (registered trademark).

The force detecting section 21 is provided between the end effector Eand the manipulator M. The force detecting section 21 is, for example, aforce sensor. The force detecting section 21 detects an external forceapplied to a hand H. In this example, the hand H means the end effectorE or an object griped by the end effector E. In this example, theexternal force means both of a force applied to the hand H and a momentapplied to the hand H. That is, the force detecting section 21 detectsthe magnitude of the force applied to the hand H, that is, a forceapplied in the direction of each of the coordinate axes of a forcedetection coordinate system. The force detecting section 21 detects themagnitude of a moment applied to the hand H, that is, a moment appliedaround each of the coordinate axes. The force detecting section 21outputs force detection information including force detection valuesindicating the detected magnitudes to the robot control device 30through communication. The force detection coordinate system is athree-dimensional local coordinate system associated with the forcedetecting section 21 to move together with the force detecting section21. Note that the external force may mean, instead of the force and themoment, one of the force applied to the hand H and the moment applied tothe hand H.

The force detection information is used for force control, which iscontrol based on force detection information of the arm A by the robotcontrol device 30. The force control means, for example, compliantmotion control such as impedance control. Note that the force detectingsection 21 may be another sensor that detects the external force appliedto the hand H such as a torque sensor.

The force detecting section 21 is communicably connected to the robotcontrol device 30 by a cable. Wired communication via the cable isperformed according to a standard such as the Ethernet (registeredtrademark) or the USB. Note that the force detecting section 21 and therobot control device 30 may be connected by wireless communicationperformed according to a communication standard such as the Wi-Fi(registered trademark).

In this example, the robot control device 30 is a robot controller. Therobot control device 30 acquires teaching point information from theteaching device 50. The teaching point information is informationindicating a teaching point. The teaching point is an imaginary pointrepresenting a position and a posture serving as targets for changingthe position and the posture of the robot 20 when the robot controldevice 30 operates the robot 20. Teaching point position information,teaching point posture information, and teaching point identificationinformation are associated with the teaching point. The teaching pointposition information is information indicating the position of theteaching point. The teaching point posture information is informationindicating the posture of the teaching point. The teaching pointidentification information is information for identifying the teachingpoint.

In this example, the position of the teaching point is represented by aposition in a robot coordinate system RC of the origin of a teachingpoint coordinate system, which is a three-dimensional local coordinatesystem associated with the teaching point. The posture of the teachingpoint is represented by directions in the robot coordinate system RC ofcoordinate axes of the teaching point coordinate system.

The robot control device 30 stores the teaching point informationacquired from the teaching device 50. The robot control device 30generates, on the basis of the stored teaching point information, acontrol signal for operating the robot 20. Specifically, the robotcontrol device 30 acquires information indicating rotation angles of theactuators from the encoders included in the joints of the manipulator M.The robot control device 30 generates a control signal on the basis ofthe stored teaching point information and the acquired informationindicating the rotation angles. The robot control device 30 transmitsthe generated control signal to the robot 20 and operates the actuatorsto thereby operate the robot 20. A control signal for controlling theend effector E is also included in the control signal.

The robot control device 30 acquires various instructions from theteaching device 50. The robot control device 30 switches the operationmode of the robot control device 30 on the basis of an operation modeswitching instruction for switching the operation mode of the robotcontrol device 30 among the acquired instructions. Specifically, in thisexample, the robot control device 30 switches the operation mode to anyone of a first mode, a second mode, and a third mode on the basis of theoperation mode switching instruction. The robot control device 30 causesthe robot 20 to perform operation corresponding to the switchedoperation mode. The operation mode switching instruction is aninstruction including information indicating any one of the first mode,the second mode, and the third mode. Note that the robot control device30 may switch the operation mode to the first mode or the second mode,may switch the operation mode to the second mode or the third mode, ormay switch the operation mode to the first mode or the third mode. Therobot control device 30 may switch the operation mode to a part or allof the three modes of the first mode to the third mode or other modesdifferent from the three modes.

In this example, the first mode is an automatic operation mode. Theautomatic operation mode is a mode for operating the robot 20 until theexternal force applied to the hand H satisfies a first predeterminedcondition. That is, the first mode is a mode in which the robot controldevice 30 operates the robot 20 until the first predetermined conditionis satisfied according to force control. Note that the first mode may beanother mode instead of the automatic operation mode. The firstpredetermined condition is an example of a predetermined condition. Thefirst predetermined condition is explained below.

In this example, the second mode is a jog operation mode. The jogoperation mode is a mode for moving a second part included in the robot20 in a predetermined direction by a predetermined amount on the basisof an external force applied to a first part included in the robot 20.In the following explanation, an example is explained in which the firstpart and the second part are the same part and the first part and thesecond part are the hand H. That is, the second mode is a mode formoving the hand H in the predetermined direction by the predeterminedamount on the basis of the external force applied to the hand H. Notethat the first part may be another part included in the robot 20 insteadof the hand H. The second part may be, instead of the hand H, a partdifferent from the first part among other parts included in the robot20. The second mode may be another mode instead of the jog operationmode.

In this example, the third mode is a direct operation mode. The directoperation mode is a mode for moving, on the basis of the external forceapplied to the hand H included in the robot 20, the hand H in an applieddirection of the external force by an amount corresponding to themagnitude of the external force. That is, the third mode is a mode inwhich the robot control device 30 operates the robot 20 when the usermoves the robot 20 in direct teaching. Note that the third mode may beanother mode instead of the direct operation mode. In the followingexplanation, since the operation of the robot 20 by the third mode isoperation known in the direct teaching in the past, explanationconcerning the third mode is omitted.

The robot control device 30 outputs, on the basis of a position andposture information output instruction for outputting informationindicating the position and the posture of the robot 20 at the presenttime among the instructions acquired from the teaching device 50 to theteaching device 50, the information to the teaching device 50.

Note that the robot control device 30 may be incorporated in the robot20 instead of being set on the outside of the robot 20.

In this example, the teaching device 50 is a teaching pendant. Theteaching device 50 outputs various instructions to the robot controldevice 30 on the basis of operation received from the user. The teachingdevice 50 outputs an operation mode switching instruction to the robotcontrol device 30 to thereby cause the robot control device 30 to switchthe operation mode.

The teaching device 50 outputs, to the robot control device 30, theposition and posture information output instruction among theinstructions output to the robot control device 30 to thereby acquireinformation indicating the position and the posture of the robot 20 atthe present time from the robot control device 30. The teaching device50 generates teaching point information on the basis of the acquiredinformation. The teaching device 50 outputs the generated teaching pointinformation to the robot control device 30 and causes the robot controldevice 30 to store the teaching point information. That is, the teachingdevice 50 teaches the robot control device 30 about a teaching pointindicated by the generated teaching point information.

The teaching device 50 is communicatively connected to the robot controldevice 30 by a cable. Wired communication via the cable is performedaccording to a standard such as the Ethernet (registered trademark) orthe USB (Universal Serial Bus). Note that the teaching device 50 and therobot control device 30 may be connected by wireless communicationperformed according to a communication standard such as the Wi-Fi(registered trademark).

Note that the teaching device 50 may be, instead of the teachingpendant, a remote controller or the like having the functions of theteaching device 50 and capable of outputting an instruction to the robotcontrol device 30.

Overview of Processing in which the Robot Control Device Operates theRobot

An overview of processing in which the robot control device 30 operatesthe robot 20 is explained.

As shown in FIG. 1, in this example, the robot 20 grips an object O1 inadvance with the end effector E. That is, the hand H in this examplemeans the end effector E or the object O1 gripped by the end effector E.The object O1 is, for example, an industrial component, member, orproduct. Note that the object O1 may be, instead the industrialcomponent, the member, the product, or the like, another object such asa component a member, or a product of daily goods different from theindustrial one or an organism. In the example shown in FIG. 1, theobject O1 is shown as an object having a rectangular parallelepipedshape. Note that the shape of the object O1 may be another shape insteadof the rectangular parallelepiped shape.

The robot control device 30 sets a control point T1, which is a TCP(Tool Center Point) moving together with the end effector E, in aposition associated with the end effector E in advance. The positionassociated with the end effector E in advance is, for example, theposition of the center of gravity of the object O1 gripped in advance bythe end effector E. Note that the position associated with the endeffector E may be, instead of the position of the center of gravity ofthe object O1, another position such as the position of the center ofgravity of the end effector E or may be any position associated with themanipulator M.

Control point position information, which is information indicating theposition of the control point T1, and control point posture information,which is information indicating the posture of the control point T1, areassociated with the control point T1. Note that, in addition to thesekinds of information, other kinds of information may be associated withthe control point T1. When the robot control device 30 designates(determines) the control point position information and the controlpoint posture information, the position and the posture of the controlpoint T1 are determined. The position and the posture are a position anda posture in the robot coordinate system RC. The robot control device 30designates the control point position information and the control pointposture information. The robot control device 30 operates the arm A,matches the position of the control point T1 with a position indicatedby the designated control point position information, and matches theposture of the control point T1 with a posture indicated by thedesignated control posture information. That is, the robot controldevice 30 designates the control point position information and thecontrol point posture information to thereby operate the robot 20.

In this example, the position of the control point T1 is represented bya position in the robot coordinate system RC of the origin of a controlpoint coordinate system TC1. The posture of the control point T1 isrepresented by directions in the robot coordinate system RC ofcoordinate axes of the control point coordinate system TC1. The controlpoint coordinate system TC1 is a three-dimensional local coordinatesystem associated with the control point T1 to move together with thecontrol point T1. Note that, in this example, the position and theposture of the object O1 are represented by the position and the postureof the control point T1. In this example, the directions of thecoordinate axes of the control point coordinate system TC1 coincide withthe directions of the coordinate axes of the force detection coordinatesystem explained above. Note that the directions of the coordinate axesof the control point coordinate system TC1 does not have to coincidewith the directions of the coordinate axes of the force detectioncoordinate system.

The robot control device 30 sets the control point T1 on the basis ofcontrol point setting information input from the user in advance. Thecontrol point setting information is, for example, informationindicating relative positions and relative postures of the position andthe posture of the center of gravity of the end effector E and theposition and the posture of the control point T1. Note that, instead ofthe information, the control point setting information may beinformation indicating relative positions and relative postures of someposition and posture associated with the end effector E and the positionand the posture of the control point T1, may be information indicatingrelative positions and relative postures of some position and postureassociated with the manipulator M and the position and the posture ofthe control point T1, or may be information indicating relativepositions and relative postures of some position and posture associatedwith another part of the robot 20 and the position and the posture ofthe control point T1.

In the following explanation, as an example, the position and theposture of the robot 20 are the position and the posture of the controlpoint T1. Note that the position and the posture of the robot 20 may bethe position and the posture of another part that moves according to theoperation of the robot 20.

The robot control device 30 operates the robot 20 on the basis of theteaching point information. When operating the robot 20 on the basis ofthe teaching point information, the robot control device 30 designates,on the basis of an operation program input in advance by the user, inorder, one or more teaching points indicated by the teaching pointinformation. The robot control device 30 designates, as control pointposition information, teaching point position information associatedwith a designated teaching point, which is a teaching point designatedby the robot control device 30, and designates, as control point postureinformation, teaching point posture information associated with thedesignated teaching point. That is, the robot control device 30designates the control point position information and the control pointposture information on the basis of the designated teaching point.Consequently, the robot control device 30 can match the control point T1with the designated teaching point. Note that, in this example, acertain teaching point and the control point T1 coinciding with eachother means that the position and the posture of the teaching point andthe position and the posture of the control point T1 coincide with eachother.

When the operation mode is any one of the first mode to the third mode,the robot control device 30 operates the robot 20 on the basis of forcedetection information acquired from the force detecting section 21.

Specifically, the robot control device 30 acquires force detectioninformation from the force detecting section 21. When the operation modeis the first mode, the robot control device 30 changes, on the basis ofthe acquired force detection information, the position and the postureof the control point T1 to a position and a posture for realizing astate in which an external force applied to the hand H satisfies thefirst predetermined condition. The robot control device 30 calculatesthe position and the posture for realizing the state on the basis offorce control parameters input to the robot control device 30 inadvance, an equation of dynamic motion, and the force detectioninformation.

When the operation mode is the second mode, the robot control device 30moves, when the external force applied to the hand H satisfies a secondpredetermined condition, the control point T1 in the predetermineddirection by the predetermined amount on the basis of the forcedetection information acquired from the force detecting section 21.Consequently, the robot control device 30 moves the hand H in thepredetermined direction by the predetermined amount.

When the operation mode is the third mode, the robot control device 30moves, on the basis of the force detection information acquired from theforce detecting section 21, the control point T1 in an applies directionof the external force to the hand H by an amount corresponding to theexternal force. The robot control device 30 calculates the amountcorresponding to the external force on the basis of force controlparameters input to the robot control device 30 in advance, an equationof dynamic motion, and the force detection information.

Teaching Points about which the Teaching Device Teaches the RobotControl Device

Teaching points about which the teaching device 50 teaches the robotcontrol device 30 are explained below.

The teaching device 50 teaches a final target teaching point and astandby teaching point as the teaching points about which the teachingdevice 50 teaches the robot control device 30. That is, the teachingdevice 50 generates pieces of teaching point information respectivelyindicating the final target teaching point and the standby teachingpoint. The teaching device 50 outputs the generated teaching pointinformation to the robot control device 30 and causes the robot controldevice 30 to store the teaching point information.

In this example, the final target teaching point is a teaching pointcoinciding with the control point T1 when the robot 20 disposes theobject O1 in a disposition region RA set on the upper surface of aworkbench TB. In this example, the workbench TB is a bench such as atable. The workbench TB is set on a floor surface such that the uppersurface of the workbench TB is orthogonal to a Z axis of the robotcoordinate system RC. Note that, instead of the bench, the workbench TBmay be another object as long as the object is an object including asurface on which the object O1 can be placed such as a floor surface ora shelf. The upper surface of the workbench TB does not have to beorthogonal to the Z axis of the robot coordinate system RC. Theworkbench TB is an example of a target object.

In this example, the standby teaching point is a teaching point withwhich the control point T1 is matched before the robot 20 disposes theobject O1 in the disposition region RA. The control point T1 is put onstandby at the teaching point. The standby teaching point is a teachingpoint away from the final target teaching point by a first predetermineddistance in a positive direction of the Z axis of the robot coordinatesystem RC. The first distance is, for example, 10 centimeters. Notethat, instead of 10 centimeters, the predetermined distance may be adistance shorter than 10 centimeters or may be a distance longer than 10centimeters as long as the object O1 does not come into contact with theworkbench TB.

The teaching device 50 switches the operation mode of the robot controldevice 30 on the basis of operation received from the user. The robotcontrol device 30, the operation mode of which is switched by theteaching device 50, causes the robot 20 to perform operationcorresponding to the present operation mode and matches a position and aposture desired by the user and the position and the posture of thecontrol point T1. When the position and the posture desired by the userand the position and the posture of the control point T1 are matched,the teaching device 50 acquires information indicating the position andthe posture of the control point T1 at the present time from the robotcontrol device 30. The teaching device 50 generates teaching pointinformation indicating a teaching point on the basis of the acquiredinformation. Consequently, the teaching device 50 generates teachingpoint information indicating the standby teaching point and teachingpoint information indicating the final target teaching point. Theteaching device 50 outputs generated these kinds of teaching pointinformation to the robot control device 30 and causes the robot controldevice 30 to store the generated teaching point information. That is,the teaching device 50 teaches the robot control device 30 about theteaching point information.

The following detailed explanation relates to processing in which theteaching device 50 outputs various instructions to the robot controldevice 30, processing in which the robot control device 30 switches theoperation mode on the basis of the operation mode switching instruction,processing in which the robot control device 30 outputs, on the basis ofthe position and posture information output instruction, to the teachingdevice 50, information indicating the position and the posture of thecontrol point T1 at the present time, processing in which the robotcontrol device 30 operates the robot 20 when the operation mode is thesecond mode, and processing in which the robot control device 30operates the robot 20 when the operation mode is the first mode.

Hardware Configuration of the Robot Control Device and the TeachingDevice

A hardware configuration of the robot control device 30 and the teachingdevice 50 is explained below with reference to FIG. 2. FIG. 2 is adiagram showing an example of the hardware configuration of the robotcontrol device 30 and the teaching device 50. FIG. 2 is a diagramshowing a hardware configuration of the robot control device 30(functional sections added with reference numerals in thirties in FIG.2) and a hardware configuration of the teaching device 50 (functionalsections added with reference numerals in fifties in FIG. 2) togetherfor convenience.

The robot control device 30 includes, for example, a CPU (CentralProcessing Unit) 31, a storing section 32, an input receiving section33, a communication section 34, and a display section 35. The robotcontrol device 30 performs communication with each of the robot 20 andthe teaching device 50 via the communication section 34. Thesecomponents are communicatively connected to each other via a bus Bus.

The teaching device 50 includes, for example, a CPU 51, a storingsection 52, an input receiving section 53, a communication section 54,and a display section 55. The teaching device 50 performs communicationwith the robot control device 30 via the communication section 54. Thesecomponents are communicatively connected to one another via the bus Bus.

The CPU 31 executes various computer programs stored in the storingsection 32.

The storing section 32 includes, for example, a HDD (Hard Disk Drive) oran SSD (Solid State Drive), an EEPROM (Electrically ErasableProgrammable Read-Only Memory), a ROM (Read-Only Memory), or a RAM(Random Access Memory). Note that the storing section 32 may be, insteadof a storing section incorporated in the robot control device 30, anexternal storage device connected by, for example, a digitalinput/output port such as the USB. The storing section 32 stores variouskinds of information and images to be processed by the robot controldevice 30, various computer programs including an operation program, andteaching point information.

The input receiving section 33 is, for example, a touch panel configuredintegrally with the display section 35. Note that the input receivingsection 33 may be a keyboard, a mouse, a touch pad, or another inputdevice.

The communication section 34 includes, for example, a digitalinput/output port such as the USB or the Ethernet (registered trademark)port.

The display section 35 is, for example, a liquid crystal display panelor an organic EL (Electro Luminescence) display panel.

The CPU 51 executes various computer programs stored in the storingsection 52.

The storing section 52 includes, for example, a HDD or an SSD, anEEPROM, a ROM, or a RAM. Note that the storing section 52 may be,instead of a storing section incorporated in the teaching device 50, anexternal storage device connected by, for example, a digitalinput/output port such as the USB. The storing section 52 stores variouskinds of information and images to be processed by the teaching device50 and the various computer programs.

The input receiving section 53 is, for example, a touch panel configuredintegrally with the display section 55. Note that the input receivingsection 53 may be a keyboard, a mouse, a touch pad, or another inputdevice.

The communication section 54 includes, for example, a digitalinput/output port such as the USB or the Ethernet (registeredtrademark).

The display section 55 is, for example, a liquid crystal display panelor an organic EL display panel.

Functional Configuration of the Robot Control Device and the TeachingDevice

A functional configuration of the robot control device 30 and theteaching device 50 is explained below with reference to FIG. 3. FIG. 3is a diagram showing an example of the functional configuration of therobot control device 30 and the teaching device 50.

The robot control device 30 includes the storing section 32 and acontrol section 36.

The control section 36 controls the entire robot control device 30. Thecontrol section 36 includes a force-detection-information acquiringsection 361, a storage control section 363, an information readoutsection 364, an operation-mode switching section 365, an informationoutput section 366, and a robot control section 367. These functionalsections included in the control section 36 are realized by, forexample, the CPU 31 executing various computer programs stored in thestoring section 32. A part or all of the functional sections may behardware functional sections such as an LSI (Large Scale Integration)and an ASIC (Application Specific Integrated Circuit).

The force-detection-information acquiring section 361 acquires forcedetection information from the force detecting section 21.

The storage control section 363 causes the storing section 32 to storeteaching point information acquired from the teaching device 50.

The information readout section 364 reads out various kinds ofinformation from the storing section 32.

The operation-mode switching section 365 switches, on the basis of anoperation mode switching instruction among instructions acquired fromthe teaching device 50, the operation mode of the robot control device30 to a mode indicated by the operation mode switching instruction.

The information output section 366 outputs, on the basis of a positionand posture information output instruction among the instructionsacquired from the teaching device 50, information indicating theposition and the posture of the control point T1 at the present time tothe teaching device 50.

The robot control section 367 causes, on the basis of force detectioninformation acquired from the force detecting section 21 by theforce-detection-information acquiring section 361, the robot 20 toperform operation corresponding to the present operation mode of therobot control device 30. The robot control section 367 operates therobot 20 on the basis of the teaching point information stored in thestoring section 32 by the storage control section 363.

The teaching device 50 includes the storing section 52, the inputreceiving section 53, the display section 55, and a control section 56.

The control section 56 controls the entire teaching device 50. Thecontrol section 56 includes a display control section 561, aninstruction-information generating section 563, and aninstruction-information output section 565. These functional sectionsincluded in the control section 56 are realized by, for example, the CPU51 executing various computer programs stored in the storing section 52.A part or all of the functional sections may be hardware functionalsections such as an LSI and an ASIC.

The display control section 561 generates various screens that thedisplay control section 561 causes the display section 55 to display.The display control section 561 causes the display section 55 to displaythe generated screens.

The instruction-information generating section 563 generates, on thebasis of operation received by the user from the screens that thedisplay control section 561 causes the display section 55 to display,various instructions to be output to the robot control device 30.

The instruction-information output section 565 outputs the instructionsgenerated by the instruction-information generating section 563 to therobot control device 30.

Processing in which the Teaching Device Outputs Various Instructions tothe Robot Control Device

Processing in which the teaching device 50 outputs various instructionsto the robot control device 30 is explained with reference to FIG. 4.FIG. 4 is a flowchart for explaining an example of a flow of theprocessing in which the teaching device 50 outputs the variousinstructions to the robot control device 30. Note that, in the flowchartshown in FIG. 4, a main screen for receiving, from the user, operationfor outputting the various instructions to the robot control device 30is already displayed on the display section 55 by the display controlsection 561.

The instruction-information generating section 563 stays on standbyuntil the operation by the user is received on the main screen (stepS110). When determining that the operation by the user is received onthe main screen (YES in step S110), the instruction-informationgenerating section 563 determines whether the operation is operation forswitching the operation mode of the robot control device 30 (step S120).

For example, when information indicating any one of the first mode tothe third mode is selected by the operation received in step S110, theinstruction-information generating section 563 determines that theoperation is the operation for switching the operation mode of the robotcontrol device 30. On the other hand, when information indicating anyone of the first mode to the third mode is not selected by the operationreceived in step S110, the instruction-information generating section563 determines that the operation is not the operation for switching theoperation mode of the robot control device 30.

When determining that the operation received in step S110 is theoperation for switching the operation mode of the robot control device30 (YES in step S120), the instruction-information generating section563 generates an operation mode switching instruction includinginformation selected in step S110 and indicating a mode (step S130). Theinstruction-information output section 565 outputs the operation modeswitching instruction generated by the instruction-informationgenerating section 563 in step S130 to the robot control device 30 (stepS140).

On the other hand, when determining that the operation received in stepS110 is not the operation for switching the operation mode of the robotcontrol device 30 (NO in step S120), the instruction-informationgenerating section 563 determines whether the operation received in stepS110 is operation for acquiring the position and the posture of therobot 20 at the present time (in this example, the position and theposture of the control point T1 at the present time) (step S160). Whendetermining that the operation received in step S110 is the operationfor acquiring the information indicating the position and the posture ofthe control point T1 at the present time (YES in step S160), theinstruction-information generating section 563 generates a position andposture information output instruction (step S170). Theinstruction-information generating section 563 outputs the position andposture information output instruction generated in step S170 to therobot control device 30 (step S180).

On the other hand, when determining that the operation received in stepS110 is not the operation for acquiring the position and the posture ofthe control point T1 at the present time (NO in step S160), theinstruction-information generating section 563 executes processingcorresponding to the operation received in step S110 (step S190). Theprocessing includes processing for generating instructions other thanthe operation mode switching instruction and the position and postureinformation output instruction and processing for outputting thegenerated instruction to the robot control device 30.

After the processing in any one of step S140, step S180, and step S190is executed, the instruction-information generating section 563determines whether the reception of the operation from the user on themain screen has ended (step S150). For example, when operation fordeleting the main screen is received on the main screen, theinstruction-information generating section 563 determines that thereception of the operation from the user on the main screen has ended.On the other hand, when the operation for deleting the main screen isnot received on the main screen, the instruction-information generatingsection 563 determines that the reception of the operation from the useron the main screen has not ended.

When determining that the reception of the operation from the user onthe main screen has not ended (NO in step S150), theinstruction-information generating section 563 transitions to step S110and stays on standby until operation by the user is received on the mainscreen again. On the other hand, when determining that the reception ofthe operation from the user on the main screen has ended (YES in stepS150), the instruction-information generating section 563 ends theprocessing.

Processing in which the Robot Control Device Switches the Operation Modeon the Basis of an Operation Mode Switching Instruction

Processing in which the robot control device 30 switches the operationmode on the basis of an operation mode switching instruction isexplained below with reference to FIG. 5. FIG. 5 is a flowchart forexplaining an example of a flow of the processing in which the robotcontrol device 30 switches the operation mode on the basis of theoperation mode switching instruction.

The operation-mode switching section 365 stays on standby until anoperation mode switching instruction is acquired from the teachingdevice 50 (step S210). When determining that the operation modeswitching instruction is acquired from the teaching device 50 (YES instep S210), the operation-mode switching section 365 switches thepresent operation mode of the robot control device 30 to a modeindicated by the operation mode switching instruction acquired from theteaching device 50 in step S210 (step S220).

Note that a configuration may be adopted in which, for example, therobot 20 includes an operation mode switch and the robot control device30 acquires an operation mode switching instruction output from theoperation mode switch according to operation of the operation modeswitch by the user. In this case, the user can switch the operation modeof the robot control device 30 by operating the operation mode switch.The operation mode switch is provided, for example, in a part of the endeffector E or the manipulator M.

Processing in which the Robot Control Device Outputs InformationIndicating the Position and the Posture of the Control Point at thePresent Time to the Teaching Device on the Basis of a Position andPosture Information Output Instruction

Processing in which the robot control device 30 outputs, on the basis ofa position and posture information output instruction, informationindicating the position and the posture of the control point T1 at thepresent time to the teaching device 50 is explained below with referenceto FIG. 6. FIG. 6 is a flowchart for explaining an example of a flow ofprocessing in which the robot control device 30 outputs, on the basis ofthe position and posture information output instruction, the informationindicating the position and the posture of the control point T1 at thepresent time to the teaching device 50.

The information output section 366 stays on standby until a position andposture information output instruction is acquired from the teachingdevice 50 (step S310). When the information output section 366determines that the position and posture information output instructionis acquired from the teaching device 50 (YES in step S310), the robotcontrol section 367 calculates the position and the posture of thecontrol point T1 at the present time. Specifically, the robot controlsection 367 acquires information indicating rotation angles of theactuators from the encoders included in the joints of the manipulator M.The robot control section 367 calculates the position and the posture ofthe control point T1 at the present time on the basis of the acquiredrotation angles and the forward kinematics. The information outputsection 366 outputs, to the teaching device 50, information indicatingthe position and the posture calculated by the robot control section 367(step S320).

Processing in which the Robot Control Device Operates the Robot when theOperation Mode is the Second Mode

Processing in which the robot control device 30 operates the robot 20when the operation mode is the second mode is explained with referenceto FIGS. 7 to 15. FIG. 7 is a flowchart for explaining a flow of theprocessing in which the robot control device 30 operates the robot 20when the operation mode is the second mode.

The robot control section 367 stays on standby until an operation startinstruction is received (step S405). The operation start instructionmeans an instruction for causing the robot control device 30 to start,according to the present operation mode, the processing for operatingthe robot 20. The robot control section 367 may receive the operationstart instruction from the user on a screen that a not-shown displaycontrol section causes the display section 35 to display, may receivethe operation start instruction output from the teaching device 50 onthe basis of operation received from the user, or may receive theoperation start instruction output from a switch or the like separatefrom the robot control device 30 and the teaching device 50.

The robot control section 367 may receive, as the operation startinstruction, an external force applied to the hand H and satisfying apredetermined operation start condition. The operation start conditionis that, for example, the magnitude of a force applied to the hand H ina predetermined operation start direction is equal to or larger than apredetermined first threshold. In this case, the operation startdirection is a direction input to the robot control section 367 inadvance by the user and is a translational direction for translating thehand H. The operation start direction is desirably a direction differentfrom the predetermined direction explained below but may be a directionsame as the predetermined direction. The first threshold is a thresholdinput to the robot control section 367 in advance by the user and may beany threshold. The operation start condition may be that, instead of themagnitude of the force applied to the hand H in the predeterminedoperation start direction being equal to or larger than thepredetermined first threshold, the magnitude of a moment applied to thehand H in the predetermined operation start direction is equal to orlarger than a predetermined second threshold. In this case, theoperation start direction is a direction input to the robot controlsection 367 in advance by the user and is a rotational direction forrotating the hand H. The second threshold is a threshold input to therobot control section 367 in advance by the user and may be anythreshold. The operation start condition may be other conditions insteadof these conditions.

When determining in step S405 that the operation start instruction isreceived (YES in step S405), the robot control section 367 determines onthe basis of force detection information acquired from the forcedetecting section 21 by the force-detection-information acquiringsection 361 that an external force satisfying the second predeterminedcondition is applied to the hand H (step S410).

When determining in step S410 that the external force satisfying thesecond predetermined condition is applied to the hand H (YES in stepS410), the robot control section 367 moves the control point T1 in thepredetermined direction by the predetermined amount (step S420).

The predetermined direction is a direction input to the robot controlsection 367 in advance by the user. The predetermined amount is amovement amount input to the robot control section 367 in advance by theuser. When the predetermined direction is a translational direction fortranslating the control point T1, the predetermined amount is atranslation movement amount for translating the control point T1 and is,for example, 1 millimeter. Note that the predetermined amount in thiscase may be a translation movement amount shorter than 1 millimeter ormay be a translation movement amount longer than 1 millimeter. When thepredetermined direction is a rotational direction for rotating controlpoint T1, the predetermined amount is a rotation angle for rotating thecontrol point T1 and is, for example, 1 degree. Note that, instead of 1degree, the predetermined amount in this case may be a rotation anglesmaller than 1 degree or may be a rotation angle larger than 1 degree.In this way, the predetermined direction is one or both of thetranslational direction and the rotational direction.

After moving the control point T1 in the predetermined direction by thepredetermined amount in step S420, the robot control section 367determines whether an operation end instruction is received (step S430).The operation end instruction is an instruction for causing the robotcontrol device 30 to end the processing for operating the robot 20. Therobot control section 367 may receive the operation end instruction fromthe user on a screen that the not-shown display control section causesthe display section 35 to display, may receive the operation endinstruction output from the teaching device 50 on the basis of operationreceived from the user, or may receive an operation end instructionoutput from a switch or the like separate from the robot control device30 and the teaching device 50.

The robot control device 30 may receive, as the operation endinstruction, an external force applied to the hand H and satisfying apredetermined end condition. The operation end condition is that, forexample, the magnitude of a force applied to the hand H in apredetermined operation end direction is equal to or larger than apredetermined third threshold. In this case, the operation end directionis a direction input to the robot control section 367 in advance by theuser and is a translational direction for translating the hand H. Theoperation end direction is desirably a direction different from thepredetermined direction but may be a direction same as the predetermineddirection. The third threshold is a threshold input to the robot controlsection 367 in advance by the user and may be any threshold. Theoperation end condition may be that, instead of the magnitude of theforce applied to the hand H in the predetermined operation end directionbeing equal to or larger than the predetermined third threshold, themagnitude of a moment applied to the hand H in the predeterminedoperation end direction is equal to or larger than a predeterminedfourth threshold. In this case, the operation end direction is adirection input to the robot control section 367 in advance by the userand is a rotational direction for rotating the hand H. The fourththreshold is a threshold input to the robot control section 367 inadvance by the user and may be any threshold. The operation endcondition may be other conditions instead of these conditions.

When determining in step S430 that the operation end instruction is notreceived (NO in step S430), the robot control section 367 transitions tostep S410 and stays on standby until the second predetermined conditionis satisfied again. On the other hand, when determining that theoperation end instruction is received (YES in step S430), the robotcontrol section 367 ends the processing.

On the other hand, when determining in step S410 that the external forcesatisfying the second predetermined condition is not applied to the handH (NO in step S410), the robot control section 367 transitions to stepS430 and determines whether the operation end instruction is received.

In this way, when operating the robot 20 in the second mode, the robotcontrol device 30 moves the hand H in the predetermined direction by thepredetermined amount on the basis of the external force applied to thehand H. Consequently, in the second mode, the robot control section 367can keep constant the movement amount of the hand H by the externalforce applied to the hand H by the user. As a result, for example, adesired predetermined amount is input to the robot control section 367in advance by the user, whereby the robot control device 30 can highlyaccurately change the position and the posture of the control point T1to a desired position and a desired posture.

Note that, even if the user continues to apply the external forcesatisfying the second predetermined condition to the hand H in stepS410, the robot control section 367 in this example performs theprocessing in step S420 only once. That is, even if the user continuesto apply the external force satisfying the second predeterminedcondition to the hand H in step S410, the robot control section 367 doesnot move the control point T1 in the predetermined direction by apredetermined multiple of the predetermined amount. When the userdesires to move the control point T1 in the predetermined direction bythe predetermined multiple of the predetermined amount, the user needsto repeat, a predetermined number of times, work from the application ofthe external force satisfying the second predetermined condition to thehand H to the release of the external force applied to the hand H.

After the robot 20 is operated in the second mode and the position andthe posture of the hand H is adjusted by the user, the robot controldevice 30 outputs information indicating the position and the posture ofthe control point T1 at the present time to the teaching device 50according to the processing of the flowchart shown in FIG. 6. Theteaching device 50 generates teaching point information on the basis ofthe information acquired from the robot control device 30. The teachingdevice 50 outputs the generated teaching point information to the robotcontrol device 30. The robot control device 30 stores the teaching pointinformation acquired from the teaching device 50. For example, the robotcontrol device stores the teaching point information respectivelyindicating the standby teaching point and the final target teachingpoint acquired from the teaching device 50. Consequently, in the secondmode, the robot control device 30 can control the robot 20 on the basisof the position and the posture of the control point T1 stored after thehand H is moved in the predetermined direction by the predeterminedamount.

The second predetermined condition is explained. The secondpredetermined condition is that, for example, the magnitude of a forceapplied to the hand H in a movement executing direction is equal to orlarger than a fifth threshold. In this case, the movement executingdirection is a direction input to the robot control section 367 inadvance by the user and is a translational direction for translating thehand H. The fifth threshold is a threshold input to the robot controlsection 367 in advance by the user and may be any threshold. Specificexamples of the movement executing direction in the second predeterminedcondition in this case and the predetermined direction are respectivelyshown in FIGS. 8 to 10.

FIG. 8 is a diagram showing a specific example 1 of the movementexecuting direction in the second predetermined condition and thepredetermined direction. The specific example 1 is an example in whichboth of the movement executing direction and the predetermined directionare translational directions and the movement executing direction andthe predetermined direction are directions different from each other. InFIG. 8, a side view of the hand H viewed from a negative direction to apositive direction of an X axis of the control point coordinate systemTC1 is shown.

In FIG. 8, the movement executing direction is indicated by a directionA1 indicated by an arrow. In the example shown in FIG. 8, the movementexecuting direction is a positive direction of a Y axis of the controlpoint coordinate system TC1. That is, when a force for translating thehand H in the positive direction is applied to the hand H as an externalforce and the magnitude of the force is equal to or larger than thefifth threshold, the robot control section 367 moves the control pointT1 (i.e., the hand H) in the predetermined direction by thepredetermined amount. Note that the movement executing direction may be,instead of the positive direction of the Y axis among the coordinateaxes of the control point coordinate system TC1, another translationaldirection for translating the hand H. The other translational directionmay be a translational direction along any one of the coordinate axes ofthe control point coordinate system. TC1 or may be a translationaldirection along none of the coordinate axes of the control pointcoordinate system TC1.

In FIG. 8, the predetermined direction is indicated by a direction A2indicated by an arrow. In the example shown in FIG. 8, the predetermineddirection is a negative direction of a Z axis of the control pointcoordinate system TC1. That is, when a force for translating the hand Hin the positive direction of the Y axis of the control point coordinatesystem TC1 is applied to the hand H as an external force and themagnitude of the force is equal to or larger than the fifth threshold,the robot control section 367 moves the control point T1 (i.e., the handH) in the negative direction of the Z axis of the control pointcoordinate system TC1 by the predetermined amount. In this case, thepredetermined amount is a movement amount for translating the controlpoint T1. Note that the predetermined direction may be, instead of thenegative direction of the Z axis among the coordinate axes of thecontrol point coordinate system TC1, another translational direction fortranslating the control point T1. The other translational direction maybe a translational direction along any one of the coordinate axes of thecontrol point coordinate system TC1 or may be a translational directionalong none of the coordinate axes of the control point coordinate systemTC1.

FIG. 9 is a diagram showing a specific example 2 of the movementexecuting direction in the second predetermined condition and thepredetermined direction. The specific example 2 is an example in whichboth of the movement executing direction and the predetermined directionare translational directions and the movement executing direction andthe predetermined direction are the same direction. In FIG. 9, a sideview of the hand H viewed from the negative direction to the frontdirection of the X axis of the control point coordinate system TC1 isshown.

In FIG. 9, the movement executing direction is indicated by a directionA3 indicated by an arrow. In the example shown in FIG. 9, the movementexecuting direction is the negative direction of the Z axis of thecontrol point coordinate system TC1. That is, when a force fortranslating the hand H in the negative direction is applied to the handH as an external force and the magnitude of the force is equal to orlarger than the fifth threshold, the robot control section 367 moves thecontrol point T1 (i.e., the hand H) in the predetermined direction bythe predetermined amount. Note that the movement executing direction maybe, instead of the negative direction of the Z axis among the coordinateaxes of the control point coordinate system TC1, another translationaldirection for translating the hand H. The other direction may be atranslational direction along any one of the coordinate axes of thecontrol point coordinate system TC1 or may be a translational directionalong none of the coordinate axes of the control point coordinate systemTC1.

In FIG. 9, the predetermined direction is indicated by a direction A4indicated by an arrow. In the example shown in FIG. 9, the predetermineddirection is a direction same as the movement executing direction and isthe negative direction of the Z axis of the control point coordinatesystem TC1. That is, when a force for translating the hand H in thenegative direction of the Z axis of the control point coordinate systemTC1 is applied to the hand H as an external force and the magnitude ofthe force is equal to or larger than the fifth threshold, the robotcontrol section 367 moves the control point T1 (i.e., the hand H) in thenegative direction by the predetermined amount. In this case, thepredetermined amount is a movement amount for translating the controlpoint T1. Note that the predetermined direction may be, instead of thenegative direction of the Z axis among the coordinate axes of thecontrol point coordinate system TC1, another translational direction fortranslating the control point T1. The other translational direction maybe a translational direction along any one of the coordinate axes of thecontrol point coordinate system TC1 or may be a translational directionalong none of the coordinate axes of the control point coordinate systemTC1.

FIG. 10 is a diagram showing a specific example 3 of the movementexecuting direction in the second predetermined condition and thepredetermined direction. The specific example 3 is an example in whichthe movement executing direction is a translational direction and thepredetermined direction is a rotational direction. In FIG. 10, a sideview of the hand H viewed from the negative direction to the positivedirection of the X axis of the control point coordinate system TC1 isshown.

In FIG. 10, the movement executing direction is indicated by a directionA5 indicated by an arrow. In the example shown in FIG. 10, the movementexecuting direction is the positive direction of the Y axis of thecontrol point coordinate system TC1. That is, when a force fortranslating the hand H in the positive direction is applied to the handH as an external force and the magnitude of the force is equal to orlarger than the fifth threshold, the robot control section 367 moves thecontrol point T1 (i.e., the hand H) in the predetermined direction bythe predetermined amount. Note that the movement executing direction maybe, instead of the positive direction of the Y axis among the coordinateaxes of the control point coordinate system TC1, another translationaldirection for translating the hand H. The other translational directionmay be a translational direction along any one of the coordinate axes ofthe control point coordinate system TC1 or may be a translationaldirection along none of the coordinate axes of the control pointcoordinate system TC1.

In FIG. 10, the predetermined direction is indicated by a direction A6indicated by an arrow. In the example shown in FIG. 10, thepredetermined direction is a rotational direction for rotating the handH clockwise around the X axis when the hand H is viewed from thenegative direction to the positive direction of the X axis of thecontrol point coordinate system TC1. That is, when a force fortranslating the hand H in the positive direction of the Y axis of thecontrol point coordinate system TC1 is applied to the hand H as anexternal force and the magnitude of the force is equal to or larger thanthe fifth threshold, the robot control section 367 moves the controlpoint T1 (i.e., the hand H) in the rotational direction by thepredetermined amount. In this case, the predetermined amount is arotation amount (a rotation angle) for rotating the control point T1.Note that the predetermined direction may be another rotationaldirection instead of the rotational direction. The other rotationaldirection may be a rotational direction around any one of the coordinateaxes of the control point coordinate system TC1 or may be a rotationaldirection around an axis different from all the coordinate axes of thecontrol point coordinate system TC1.

Note that the second predetermined condition may be that, for example,the magnitude of a moment applied to the hand H in the movementexecuting direction is equal to or larger than a sixth threshold. Inthis case, the movement executing direction is a direction input to therobot control section 367 in advance by the user and is a rotationaldirection for rotating the hand H. The sixth threshold is a thresholdinput to the robot control section 367 in advance by the user and may beany threshold. Specific examples of the movement executing direction inthe second predetermined condition in this case and the predetermineddirection are respectively shown in FIGS. 11 to 13.

FIG. 11 is a diagram showing a specific example 4 of the movementexecuting direction in the second predetermined condition and thepredetermined direction. The specific example 4 is an example in whichboth of the movement executing direction and the predetermined directionare rotational directions and the movement executing direction and thepredetermined direction are the same direction. In FIG. 11, a side viewof the hand H viewed from the negative direction to the positivedirection of the X axis of the control point coordinate system TC1 isshown.

In FIG. 11, the movement executing direction is indicated by a directionA7 indicated by an arrow. In the example shown in FIG. 11, the movementexecuting direction is a rotational direction for rotating the hand Hclockwise around the X axis when the hand H is viewed from the negativedirection to the positive direction of the X axis of the control pointcoordinate system TC1. That is, when a moment for rotating the hand H inthe rotational direction is applied to the hand H as an external forceand the magnitude of the moment is equal to or larger than the sixththreshold, the robot control section 367 moves the control point T1(i.e., the hand H) in the predetermined direction by the predeterminedamount. Note that the movement executing direction may be, instead ofthe rotational direction, another rotational direction for rotating thehand H. The other rotational direction may be a rotational directionaround any one of the coordinate axes of the control point coordinatesystem TC1 or may be a rotational direction around an axis differentfrom all the coordinate axes of the control point coordinate system TC1.

In FIG. 11, the predetermined direction is indicated by a direction A7indicated by an arrow. In the example shown in FIG. 11, thepredetermined direction is a rotational direction for rotating the handH clockwise around the X axis when the hand H is viewed from thenegative direction to the positive direction of the X axis of thecontrol point coordinate system TC1. That is, when a moment for rotatingthe hand H in the rotational direction is applied to the hand H as anexternal force and the magnitude of the moment is equal to or largerthan the sixth threshold, the robot control section 367 moves thecontrol point T1 (i.e., the hand H) in the rotational direction by thepredetermined amount. In this case, the predetermined amount is arotation amount (a rotation angle) for rotating the control point T1.Note that the predetermined direction may be, instead of the rotationaldirection, another rotational direction for rotating the control pointT1. The other rotational direction may be a rotational direction aroundany one of the coordinate axes of the control point coordinate systemTC1 or may be a rotational direction around an axis different from allthe coordinate axes of the control point coordinate system TC1.

FIG. 12 is a diagram showing a specific example 5 of the movementexecuting direction in the second predetermined condition and thepredetermined direction. The specific example 5 is an example in whichboth of the movement executing direction and the predetermined directionare rotational directions and the movement executing direction and thepredetermined direction are directions different from each other. InFIG. 12, a side view of the hand H viewed from the negative direction tothe positive direction of the X axis of the control point coordinatesystem TC1 is shown.

In FIG. 12, the movement executing direction is indicated by a directionA9 indicated by an arrow. In the example shown in FIG. 12, the movementexecuting direction is a rotational direction for rotating the hand Hclockwise around the X axis when the hand H is viewed from the negativedirection to the positive direction of the X axis of the control pointcoordinate system TC1. That is, when a moment for rotating the hand H inthe rotational direction is applied to the hand H as an external forceand the magnitude of the moment is equal to or larger than the sixththreshold, the robot control section 367 moves the control point T1(i.e., the hand H) in the predetermined direction by the predeterminedamount. Note that the movement executing direction may be, instead ofthe rotational direction, another rotational direction for rotating thehand H. The other rotational direction may be a rotational directionaround any one of the coordinate axes of the control point coordinatesystem TC1 or may be a rotational direction around an axis differentfrom all the coordinate axes of the control point coordinate system TC1.

In FIG. 12, the predetermined direction is indicated by a direction A10indicated by an arrow. In the example shown in FIG. 12, thepredetermined direction is a rotational direction for rotating the handH clockwise around the Y axis when the hand H is viewed from thepositive direction to the negative direction of the Y axis of thecontrol point coordinate system TC1. That is, when a moment for rotatingthe hand H around the rotational direction for rotating the hand Hclockwise around the X axis when the hand is viewed from the negativedirection to the positive direction of the X axis of the control pointcoordinate system TC1 is applied to the hand H as an external force andthe magnitude of the moment is equal to or larger than the sixththreshold, the robot control section 367 moves the control point T1(i.e., the hand H) in the rotational direction for rotating the hand Hclockwise around the Y axis when the hand H is viewed from the positivedirection to the negative direction of the Y axis of the control pointcoordinate system TC1. In this case, the predetermined amount is arotation amount (a rotation angle) for rotating the control point T1.Note that the predetermined direction may be, instead of the rotationaldirection, another rotational direction for rotating the control pointT1. The other rotational direction may be a rotational direction aroundany one of the coordinate axes of the control point coordinate systemTC1 or may be a rotational direction around an axis different from allthe coordinate axes of the control point coordinate system TC1.

FIG. 13 is a diagram showing a specific example 6 of the movementexecuting direction in the second predetermined condition and thepredetermined direction. The specific example 6 is an example in whichthe movement executing direction is a rotational direction and thepredetermined direction is a translational direction. In FIG. 13, a sideview of the hand H viewed from the negative direction to the positivedirection of the X axis of the control point coordinate system TC1 isshown.

In FIG. 13, the movement executing direction is indicated by a directionA11 indicated by an arrow. In the example shown in FIG. 13, the movementexecuting direction is a rotational direction for rotating the hand Hclockwise around the X axis when the hand H is viewed from the negativedirection to the positive direction of the X axis of the control pointcoordinate system TC1. That is, when a moment for rotating the hand H inthe rotational direction is applied to the hand H as an external forceand the magnitude of the moment is equal to or larger than the sixthvalue, the robot control section 367 moves the control point T1 (i.e.,the hand H) in the predetermined direction by the predetermined amount.Note that the movement executing direction may be, instead of therotational direction, another rotational direction for rotating the handH. The other rotational direction may be a rotational direction aroundany one of the coordinate axes of the control point coordinate systemTC1 or may be a rotational direction around an axis different from allthe coordinate axes of the control point coordinate system TC1.

In FIG. 13, the predetermined direction is indicated by a direction A12indicated by an arrow. In the example shown in FIG. 13, thepredetermined direction is the negative direction of the Z axis of thecontrol point coordinate system TC1. That is, when a moment for rotatingthe hand H in the rotational direction for rotating the hand H clockwisearound the X axis when the hand H is viewed from the negative directionto the positive direction of the X axis of the control point coordinatesystem TC1 is applied to the hand H as an external force and themagnitude of the moment is equal to or larger than the sixth threshold,the robot control section 367 moves the control point T1 (i.e., the handH) in the negative direction of the Z axis of the control pointcoordinate system TC1 by the predetermined amount. In this case, thepredetermined amount is a movement amount for translating the controlpoint T1. Note that the predetermined direction may be, instead of thenegative direction of the Z axis among the coordinate axes of thecontrol point coordinate system TC1, another translational direction fortranslating the control point T1. The other translational direction maybe a translational direction along any one of the coordinate axes of thecontrol point coordinate system TC1 or may be a translational directionalong none of the coordinate axes of the control point coordinate systemTC1.

Note that, in the second mode, for example, the robot control section367 may move the control point T1 in the predetermined direction by thepredetermined amount when the magnitude of a force applied to the hand Hin the movement executing direction is equal to or larger than the fifththreshold and move the control point T1 in a second predetermineddirection, which is a direction different from the predetermineddirection, by a second predetermined amount, which is an amountdifferent from the predetermined amount, when the force is equal to orlarger than a seventh threshold, which is a threshold larger than thefifth threshold. That is, the robot control section 367 may move,according to a stepwise (discrete) difference in the magnitude of theforce applied to the hand H, the control point T1 in a directioncorresponding to the difference by an amount corresponding to thedifference.

When the external force applied to the hand H satisfies the secondpredetermined condition, the robot control section 367 may change (move)a rotation angle of an actuator included in a predetermined joint in thepredetermined direction by the predetermined amount. When the rotationangle of the actuator is changed in the predetermined direction by thepredetermined amount, the predetermined direction is a rotationaldirection of the actuator and the predetermined amount is the rotationangle of the actuator.

When the force detecting section 21 is torque sensors included in thejoints of the manipulator M, the robot control section 367 may move, onthe basis of an external force applied to any one of the joints, arotation angle of the actuator included in the predetermined joint orthe control point T1 in the predetermined direction by the predeterminedamount. When the rotation angle of the actuator is moved in thepredetermined direction by the predetermined amount, the predetermineddirection is the rotational direction of the actuator and thepredetermined amount is the rotation angle of the actuator.

In step S410, when a state in which the external force applies to thehand H satisfies the second predetermined condition continues for apredetermined time or more, the robot control section 367 may determinethat the external force applied to the hand H satisfies the secondpredetermined condition. When the state in which the external forceapplied to the hand H satisfies the second predetermined condition isrealized at least once, the robot control section 367 may determine thatthe external force applied to the hand H satisfies the secondpredetermined condition.

Modification of the Processing in which the Robot Control DeviceOperates the Robot when the Operation Mode is the Second Mode

The predetermined direction explained above may be a directioncorresponding to a portion of the hand H. The portion means a portion towhich an external force is applied. That is, the robot control section367 moves, on the basis of an external force applied to the hand H, thehand H in a direction corresponding to the portion to which the externalforce is applied in the portion of the hand H by the predeterminedamount. Consequently, the robot control section 367 can cause the userto easily change the direction in which the hand H is moved.

Specific examples of the movement executing direction and thepredetermined direction at the time when the predetermined direction isa direction corresponding to a portion of a hand H are explained withreference to FIGS. 14 and 15. Note that, in the specific examplesexplained below, as an example, the second predetermined condition isthat the magnitude of a force applied to the hand H in the movementexecuting direction is equal to or larger than the fifth threshold. Notethat, as in the specific examples explained above, the secondpredetermined condition may be that the magnitude of a moment applied tothe hand H in the movement executing direction is equal to or largerthan the sixth threshold.

FIG. 14 is a diagram showing a specific example 1 of the movementexecuting direction and the predetermined direction at the time when thepredetermined direction is the direction corresponding to the portion ofthe hand H. The specific example 1 is an example in which an externalforce is applied to an upper side portion, which is a portion from the Yaxis of the control point coordinate system TC1 to the positivedirection side of the Z axis of the control point coordinate system TC1in the portion of the hand H. In FIG. 14, a side view of the hand Hviewed from the negative direction to the positive direction of the Xaxis of the control point coordinate system TC1 is shown.

In FIG. 14, the movement executing direction is indicated by a directionA13 indicated by an arrow. In FIG. 14, a portion where a force F1 isapplied to the hand H is indicated by an arrow. In the example shown inFIG. 14, the movement executing direction is the positive direction ofthe Y axis of the control point coordinate system TC1. In the example,the external force is applied to the upper side portion of the portionof the hand H. That is, when the force F1 for translating the hand H inthe positive direction is applied to the hand H as an external force andthe magnitude of the force is equal to or larger than the fifththreshold, the robot control section 367 moves the control point T1(i.e., the hand H) in the predetermined direction corresponding to theupper side portion of the hand H by the predetermined amount. Note thatthe movement executing direction may be, instead of the positivedirection of the Y axis among the coordinate axes of the control pointcoordinate system TC1, another translational direction for translatingthe hand H. The other translational direction may be a translationaldirection along any one of the coordinate axes of the control pointcoordinate system TC1 or may be a translational direction along none ofthe coordinate axes of the control point coordinate system TC1.

In FIG. 14, the predetermined direction is indicated by a direction A14indicated by an arrow. In the example shown in FIG. 14, thepredetermined direction corresponding to the upper side portion of thehand H is the positive direction of the Z axis of the control pointcoordinate system TC1. That is, when a force for translating the hand Hin the positive direction of the Y axis of the control point coordinatesystem TC1 is applied to the upper side portion of the hand H as anexternal force and the magnitude of the force is equal to or larger thanthe fifth threshold, the robot control section 367 moves the controlpoint T1 (i.e., the hand H) in the positive direction of the Z axis ofthe control point coordinate system TC1 by the predetermined amount. Inthis case, the predetermined amount is a movement amount for translatingthe control point T1. Note that the predetermined direction may be,instead of the positive direction of the Z axis among the coordinateaxes of the control point coordinate system TC1, another translationaldirection for translating the control point T1. The other translationaldirection may be a translational direction along any one of thecoordinate axes of the control point coordinate system TC1 or may be atranslational direction along none of the coordinate axes of the controlpoint coordinate system TC1. The predetermine direction may be arotational direction instead of the translational direction.

FIG. 15 is a diagram showing a specific example 2 of the movementexecuting direction and the predetermined direction at the time when thepredetermined direction is the direction corresponding to the portion ofthe hand H. The specific example 2 is an example in which an externalforce is applied to a lower side portion, which is a portion from the Yaxis of the control point coordinate system TC1 to the negativedirection side of the Z axis of the control point coordinate system TC1in the portion of the hand H. In FIG. 15, a side view of the hand Hviewed from the negative direction to the positive direction of the Xaxis of the control point coordinate system TC1 is shown.

In FIG. 15, the movement executing direction is indicated by a directionA15 indicated by an arrow. In FIG. 15, a portion where a force F2 isapplied to the hand H is indicated by an arrow. In the example shown inFIG. 15, the movement executing direction is the positive direction ofthe Y axis of the control point coordinate system TC1. In the example,an external force is applied to a lower side portion of the portion ofthe hand H. That is, when the force F2 for translating the hand H in thepositive direction is applied to the hand H as an external force and themagnitude of the force is equal to or larger than the fifth threshold,the robot control section 367 moves the control point T1 (i.e., the handH) in the predetermined direction corresponding to the lower sideportion of the hand H by the predetermined amount. Note that, themovement executing direction may be, instead of the positive directionof the Y axis among the coordinate axes of the control point coordinatesystem TC1, another translational direction for translating the hand H.The other translational direction may be a translational direction alongany one of the coordinate axes of the control point coordinate system.TC1 or may be a translational direction along none of the coordinateaxes of the control point coordinate system TC1.

In FIG. 15, the predetermined direction is indicated by a direction A16indicated by an arrow. In the example shown in FIG. 15, thepredetermined direction corresponding to the lower side portion of thehand H is the negative direction of the Z axis of the control pointcoordinate system TC1. That is, when a force for translating the hand Hin the positive direction of the Y axis of the control point coordinatesystem TC1 is applied to the lower side portion of the hand H as anexternal force and the magnitude of the force is equal to or larger thanthe fifth threshold, the robot control section 367 moves the controlpoint T1 (i.e., the hand H) in the negative direction of the Z axis ofthe control point coordinate system TC1 by the predetermined amount. Inthis case, the predetermined amount is a movement amount for translatingthe control point T1. Note that the predetermined direction may be,instead of the negative direction of the Z axis among the coordinatesystems of the control point coordinate system TC1, anothertranslational direction for translating the control point T1. The othertranslational direction may be a translational direction along any oneof the coordinate axes of the control point coordinate system TC1 or maybe a translational direction along none of the coordinate axes of thecontrol point coordinate system TC1. The predetermined direction may bea rotational direction instead of the translational direction.

In this way, the robot control section 367 moves, on the basis of anexternal force applied to the hand H, the hand H in a directioncorresponding to a portion to which the external force is applied in theportion of the hand H by the predetermined amount. Consequently, thecontrol robot section 367 can cause the user to easily change thedirection in which the hand H is moved.

Processing in which the Robot Control Device Operates the Robot when theOperation Mode is the First Mode

Processing in which the robot control device 30 operates the robot 20when the operation mode is the first mode is explained below withreference to FIGS. 16 to 18.

FIG. 16 is a flowchart for explaining an example of a flow of theprocessing in which the robot control device 30 operates the robot 20when the operation mode is the first mode. Note that, in the flowchartshown in FIG. 16, the control point T1 already coincides with thestandby teaching point. For example, in the second mode or the thirdmode, the robot control device 30 can match the control point T1 withthe standby teaching point on the basis of an external force applied tothe hand H by the user. In the following explanation, the operation modeof the robot control device 30 is already switched to the first mode.

The robot control section 367 stays on standby until an operation startinstruction is received (step S505). The robot control section 367 mayreceive the operation start instruction from the user on a screen thatthe not-shown display control section causes the display section 35 todisplay, may receive the operation start instruction output from theteaching device 50 on the basis of operation received from the user, ormay receive the operation start instruction output from a switch or thelike separate from the robot control device 30 and the teaching device50. The robot control section 367 may receive, as the operation startinstruction, an external force applied to the hand H and satisfying apredetermined operation start condition.

When determining in step S505 that the operation start instruction isreceived (YES in step S505), the robot control section 367 starts tochange, on the basis of force detection information acquired from theforce detecting section 21 by the force-detection-information acquiringsection 361, the position and the posture of the control point T1 to aposition and a posture for realizing a state in which an external forceapplied to the hand H satisfies the first predetermined condition (stepS510). Specifically, the robot control section 367 calculates theposition and the posture for realizing the state on the basis of forcecontrol parameters input to the robot control section 367 in advance, anequation of dynamic motion, and the force detection information. Therobot control section 367 starts to change the position and the postureof the control point T1 to the calculated position and the calculatedposture.

In this example, the first predetermined condition in that threeconditions 1) to 3) described below are satisfied. Note that the firstpredetermined condition may be that other conditions are satisfiedinstead of a part or all of the three conditions or may be that otherconditions are satisfied in addition to the three conditions.

1) The magnitude of a force applied in the positive direction of the Zaxis of the control point coordinate system TC1 in a force applied tothe hand H is equal to or larger than a predetermined value

2) The magnitude of forces applied in the X-axis direction and theY-axis direction of the control point coordinate system TC1 in the forceapplied to the hand H is 0 [N]

3) The magnitude of a moment around each of the coordinate axes of thecontrol point coordinate system TC1 in a moment applied to the hand H is0 [N·m]

Note that the condition 1) describe above may be that the magnitude of aforce applied in the negative direction of the Z axis of the controlpoint coordinate system TC1 in the force applied to the hand H is equalto or larger than the predetermined value, may be that the magnitude ofa force applied in the positive direction or the negative direction ofthe X axis of the control point coordinate system TC1 in the forceapplied to the hand H is equal to or larger than the predeterminedvalue, or may be that the magnitude of a force applied in the positivedirection or the negative direction of the Y axis of the control pointcoordinate system TC1 in the force applied to the hand H is equal to orlarger than the predetermined value. In this example, the positivedirection of the Z axis of the control point coordinate system TC1 is atranslational direction and is an example of a first direction. Therotational direction around each of the coordinate axes of the controlpoint coordinate system TC1 is an example of a second direction.

When the first predetermined condition is that each of the threeconditions 1) to 3) is satisfied, the robot control section 367 movesthe position of the control point T1 in the positive direction of the Zaxis of the control point coordinate system TC1 while keeping theposture of the control point T1. The processing in step S510 isexplained with reference to FIG. 17. FIG. 17 is a diagram showing anexample of a positional relation between the hand H and the workbench TBat timing immediately before the position and the posture of the controlpoint T1 start to change in step S510. In FIG. 17, a side view of thehand H viewed from the negative direction to the positive direction ofthe X axis of the control point coordinate system TC1 is shown. As shownin FIG. 17, at the timing, the control point T1 coincides with a standbyteaching point P1. In FIG. 17, since it is hard to distinguish a rangeof a disposition region RA in the side view, the disposition region RAis indicated by a thick line.

In the example shown in FIG. 17, an external force is not applied to thehand H at the timing. That is, since a moment applied to the hand H atthe timing already satisfies the condition 3) described above, the robotcontrol section 367 keeps the posture of the control point T1 in stepS510. Since forces applied in the X-axis direction and the Y-axisdirection of the control point coordinate system TC1 in a force appliedto the hand H at the timing already satisfies the condition 2) describedabove, the robot control section 367 keeps the positions in the X-axisdirection and the Y-axis direction of the control point T1 in step S510.Since a force applied in the positive direction of the Z axis of thecontrol point coordinate system TC1 in the force applied to the hand Hat the timing does not satisfy the condition 1) described above, in stepS510, the robot control section 367 starts to move the hand H in adirection opposite to the positive direction such that a force in thepositive direction is applied to the hand H. In FIG. 17, the positivedirection is indicated by a direction A17 indicated by an arrow.

After starting to change the position and the posture of the controlpoint T1 in step S510, the robot control section 367 continues, on thebasis of force detection information acquired from the force detectingsection 21 by the force-detection-information acquiring section 361, themovement of the control point T1 started in step S510 until the firstpredetermined condition is satisfied (step S520). When determining thatthe first predetermined condition is satisfied (YES in step S520), therobot control section 367 determines that the position and the postureof the control point T1 coincide with a position and a posture desiredby the user and stops the change of the position and the posture of thecontrol point T1 (step S530).

The processing in step S530 is explained with reference to FIG. 18. FIG.18 is a diagram showing an example of a positional relation between thehand H and the workbench TB at timing immediately before the change ofthe position and the posture of the control point T1 is stopped in stepS530. In FIG. 18, a side view of the hand H viewed from the negativedirection to the positive direction of the X axis of the control pointcoordinate system TC1 is shown. In FIG. 18, since it is hard todistinguish a range of the disposition region RA in the side view, thedisposition region RA is indicated by a thick line. In the example shownin FIG. 18, normal reaction from the workbench TB is applied to the handH as an external force at the timing. When the normal reaction increasesto be a predetermined value or more because of the change of theposition and the posture of the control point T1 started in step S510,since an external force applied to the hand H at the timing satisfiesthe first predetermined condition, the robot control section 367 stopsthe change of the position and the posture of the control point T1.

In this way, in operating the robot 20 in the first mode, the robotcontrol device 30 changes the position and the posture of the controlpoint T1 to a position and a posture for realizing a state in which theexternal force applied to the hand H satisfies the first predeterminedcondition. Consequently, in the first mode, the robot control section367 can highly accurately change the position and the posture of therobot 20 to a desired position and a desired posture associated with theworkbench TB without causing the user to apply an external force to thehand H. As a result, for example, when a condition desired by the useris input to the robot control section 367 as the first predeterminedcondition, the robot control device 30 can accurately perform adjustmentof the position and the posture of the hand H.

After the robot control device 30 operates the robot 20 in the firstmode and the adjustment of the position and the posture of the hand H isperformed by the user, the robot control device 30 outputs informationindicating the position and the posture of the control point T1 at thepresent time to the teaching device 50 according to the processing ofthe flowchart shown in FIG. 6. The teaching device 50 generates teachingpoint information on the basis of the information acquired from therobot control device 30. The teaching device 50 outputs the generatedteaching point information to the robot control device 30. The robotcontrol device 30 stores the teaching point information acquired fromthe teaching device 50. For example, the robot control device 30 storesteaching point information indicating a final target teaching pointacquired from the teaching device 50. Consequently, in the first mode,the robot control device 30 can operate the robot 20 on the basis of theposition and the posture of the control point T1 stored when the firstpredetermined condition is satisfied.

Fine Adjustment by the First Mode and the Second Mode

As explained above, when the robot control device 30 operates the robot20 in the first mode and the second mode, the robot control device 30can accurately perform adjustment of the position and the posture of thehand H. That is, the robot control device 30 can perform fine adjustmentof the position and the posture of the hand H.

Such fine adjustment is performed in, for example, direct teaching. Inthe direct teaching, the robot control device 30 operates the robot 20according to the third mode. Therefore, the user applies an externalforce to the hand H to change the position and the posture of the handH. However, it is difficult for the user to accurately apply an externalforce desired by the user to the hand H. Therefore, the user causes therobot control device 30 to operate the robot 20 according to the thirdmode to thereby bring the position and the posture of the hand H to theposition and the posture desired by the user and thereafter causes therobot control device 30 to operate the robot 20 according to one or bothof the first mode and the second mode. That is, in the direct teachingfor storing the position and the posture of the hand H, the robotcontrol device 30 performs teaching according to one or both of thefirst mode for moving the robot 20 until the external force applied tothe hand H satisfies the first predetermined condition and the secondmode for moving the robot 20 on the basis of the external force appliedto the hand H. Consequently, the robot control device 30 can accuratelymatch the position and the posture of the hand H with the position andthe posture desired by the user.

Note that such fine adjustment may be performed in, instead of thedirect teaching, online teaching in which the user operates a jog key tothereby cause the robot control device 30 to operate the robot 20 andcause the robot control device 30 to store the position and the postureof the hand H or teaching based on a method to be developed in future.

As explained above, when storing the position and the posture of therobot (in this example, the robot 20), the control device 25 switchesthe first mode for moving the robot until an external force applied tothe hand (in this example, the hand H) satisfies the predeterminedcondition (in this example, the first predetermined condition) and thesecond mode for moving the robot on the basis of an external forceapplied to the first part (in this example, the hand H) included in therobot. Consequently, the control device 25 can highly accurately changethe position and the posture of the robot to a desired position and adesired posture according to the first mode or the second mode.

In the first mode, the control device 25 brings the hand close to thetarget object (in this example, the workbench TB) according to controlbased on an output of the force detecting section (in this example, theforce detecting section 21) until the predetermined condition issatisfied. Consequently, in the first mode, the control device 25 canhighly accurately change the position and the posture of the robot to adesired position and a desired posture associated with the target objectwithout causing the user to apply an external force to the hand.

In the first mode, the control device 25 moves the robot until at leastan external force toward the first direction in the external forceapplied to the hand increases to be larger than 0 and at least anexternal force toward the second direction (in this example, therotational direction around each of the coordinate axes of the controlpoint coordinate system TC1) different from the first direction (in thisexample, the positive direction of the Z axis of the control pointcoordinate system TC1) in the external force applied to the handdecreases to 0. Consequently, in the first mode, the control device 25can move the position of the robot in a direction opposite to the firstdirection while keeping the posture of the robot.

In the first mode, the control device 25 moves the robot until at leasta force toward the first direction, which is a translational direction,in the force applied to the hand increases to be larger than 0 and amoment toward the second direction, which is a rotational direction,decreases to 0. Consequently, in the first mode, the control device 25can move the position of the robot in a direction opposite to the firstdirection, which is the translational direction, while keeping theposture of the robot.

In the first mode, when the predetermined condition is satisfied, thecontrol device 25 stores the position and the posture of the robot (inthis example, the position and the posture of the control point T1) atthe present time. Consequently, in the first mode, the control device 25can operate the robot on the basis of the position and the posture ofthe robot stored when the predetermined condition is satisfied.

In the second mode, the control device 25 moves the second part (in thisexample, the hand H) included in the robot in the predetermineddirection by the predetermined amount on the basis of an external forceapplied to the first part (in this example, the hand H) included in therobot. Consequently, in the second mode, the control device 25 canhighly accurately change the position and the posture of the robot to adesired position and a desired posture on the basis of an external forceapplied to the first part by the user.

After moving the second part in the predetermined direction by thepredetermined amount, the control device 25 stores the position and theposture of the robot at the present time. Consequently, in the secondmode, the control device 25 can control the robot on the basis of theposition and the posture of the robot stored after the second part ismoved in the predetermined direction by the predetermined amount.

After moving the second part in one or both of the translationaldirection and the rotational direction by the predetermined amount, thecontrol device 25 stores the position and the posture of the hand at thepresent time. Consequently, in the second mode, the control device 25can control the robot on the basis of the position and the posturestored after the second part is moved in one or both of thetranslational direction and the rotational direction by thepredetermined amount.

The control device 25 moves, according to an external force applied tothe first part include in the robot, the second part in a directioncorresponding to a portion to which the external force is applied (inthis example, the upper side portion or the lower side portion) in theportion of the first part by the predetermined amount. Consequently, thecontrol device 25 can cause the user to easily change a direction inwhich the second part is moved.

The embodiment of the invention is explained in detail above withreference to the drawings. However, a specific configuration is notlimited to the embodiment and may be, for example, changed, substituted,or deleted without departing from the spirit of the invention.

It is also possible to record, in a computer-readable recording medium,a computer program for realizing functions of any components in thedevices (e.g., the control device 25, the robot control device 30, andthe teaching device 50) explained above, cause a computer system to readthe computer program, and execute the computer program. Note that the“computer system” includes an OS (an operating system) or hardware suchas peripheral devices. The “computer-readable recording medium” refersto a portable medium such as a flexible disk, a magneto-optical disk, aROM, or a CD (Compact Disk)-ROM or a storage device such as a hard diskincorporated in the computer system. Further, the “computer-readablerecording medium” includes a recording medium that stores a computerprogram for a fixed time such as a volatile memory (a RAM) inside acomputer system functioning as a server or a client when a computerprogram is transmitted via a network such as the Internet or acommunication line such as a telephone line.

The computer program may be transmitted from a computer system, whichstores the computer program in a storage device or the like, to anothercomputer system via a transmission medium or by a transmission wave inthe transmission medium. The “transmission medium”, which transmits thecomputer program, refers to a medium having a function of transmittinginformation like a network (a communication network) such as theInternet or a communication line (a communication wire) such as atelephone line.

The computer program may be a computer program for realizing a part ofthe functions explained above. Further, the computer program may be acomputer program that can realize the functions in a combination with acomputer program already recorded in the computer system, a so-calleddifferential file (a differential program).

The entire disclosure of Japanese Patent Application No. 2016-054959,filed Mar. 18, 2016 is expressly incorporated by reference herein.

What is claimed is:
 1. A control device comprising: a robot controlsection that controls a robot including a hand and a force detectingsection; and a operation-mode switching section that switches, whenstoring a position and a posture of the robot, a first mode for movingthe robot by the robot control section until an external force appliedto the hand satisfies a predetermined condition and a second mode formoving the robot by the robot control section on the basis of anexternal force applied to a first part included in the robot.
 2. Thecontrol device according to claim 1, further comprising aforce-detection-information acquiring section that acquires forcedetection information from the force detecting section, wherein, in thefirst mode, the robot control section brings the hand close to a targetobject according to control based on the force detection informationuntil the predetermined condition is satisfied.
 3. The control deviceaccording to claim 1, wherein the predetermined condition is that atleast an external force toward a first direction in the external forceapplied to the hand increases to be larger than zero and at least anexternal force toward a second direction different from the firstdirection in the external force applied to the hand decreases to zero.4. The control device according to claim 3, wherein the first directionis a translational direction, and the second direction is a rotationaldirection.
 5. The control device according to claim 1, wherein, in thefirst mode, the control device stores, when the predetermined conditionis satisfied, the position and the posture at a present time in thestoring section.
 6. The control device according to claim 1, wherein, inthe second mode, the robot control section moves a second part includedin the robot in a predetermined direction by a predetermined amount onthe basis of the external force applied to the first part.
 7. Thecontrol device according to claim 6, wherein the control device storesthe position and the posture at a present time in the storing sectionafter moving the second part in the predetermined direction by thepredetermined amount.
 8. The control device according to claim 6,wherein one or both of a translational direction and a rotationaldirection are included in the predetermined direction.
 9. The controldevice according to claim 6, wherein the predetermined direction is adirection corresponding to a portion of the first part, and the robotcontrol section moves, according to the external force applied to thefirst part, the second part in a direction corresponding to a portion towhich the external force is applied in the portion of the first part bythe predetermined amount.
 10. A robot controlled by the control deviceaccording to claim
 1. 11. A robot controlled by the control deviceaccording to claim
 2. 12. A robot controlled by the control deviceaccording to claim
 3. 13. A robot controlled by the control deviceaccording to claim
 4. 14. A robot controlled by the control deviceaccording to claim
 5. 15. A robot controlled by the control deviceaccording to claim
 6. 16. A robot system comprising: the control deviceaccording to claim 1; and a robot controlled by the control device. 17.A robot system comprising: the control device according to claim 2; anda robot controlled by the control device.
 18. A robot system comprising:the control device according to claim 3; and a robot controlled by thecontrol device.
 19. A robot system comprising: the control deviceaccording to claim 4; and a robot controlled by the control device. 20.A robot system comprising: the control device according to claim 5; anda robot controlled by the control device.